% 利用 MATLAB 计算数学，它最常用于：
% 1、矩阵和阵列处理
% 2、2-D和3-D绘图和图形
% 3、线性代数
% 4、代数方程组
% 5、非线性函数
% 6、统计
% 7、数据分析
% 8、微积分和微分方程
% 9、数值计算
% 10、积分
% 11、变换
% 12、曲线拟合
% 13、各种其它的特殊功能


% MATLAB 被广泛用来作为计算工具在科学和工程，包括：
% 0、数值分析
% 1、数值和符号计算
% 2、信号处理和通信
% 3、控制系统的设计与仿真
% 4、图像和视频处理
% 5、工程与科学绘图
% 6、测试和测量
% 7、财务与金融工程
% 8、计算生物学
% 9、管理与调度优化计算（运筹学）

% a simple example for MATLAB
x = [1 2 3 4 5 6 7 8 9 10];
y1 = [.16 .08 .04 .02 .013 .007 .004 .002 .001 .0008 ];
y2 = [.16 .07 .03 .01 .008 .003 .0008 .0003 .00007 .00002 ];

semilogy(x, y1, x, y2);
title('Plot title');
xlabel('X Axis');
ylabel('Y Axis');
print -deps graph.eps


% GNU Octave是一个类 MATLAB 软件
% MATLAB 常用的运算符和特殊字符 使用时查查
% MATLAB 特殊变量和常量，使用时查查
% 百分号 % 是注释，
% 分号 ； 是一条语句，取消输出，需要执行输出的语句不加分号

% MATLAB命名变量，变量名称是由一个字母后由任意数量的字母，数字或下划线，
% 注意MATLAB中是区分大小写的。

% MATLAB使用save命令保存工作区中的所有变量，
% 然后作为一个扩展名为.mat的文件，在当前目录中。 
save myfile
% 该文件可以随时重新加载，然后使用load命令。
load myfile


% 在 MATLAB 中可以使用 who 命令显示所有已经使用的变量名。
who
% whos 命令则显示多一点有关变量：
% 当前内存中的变量
% 每个变量的类型
% 内存分配给每个变量
% 无论他们是复杂的变量与否
whos

% MATLAB 创建矩阵 三行三列
m = [1 2 3; 4 5 6; 7 8 9]

% MATLAB 的 M 文件
% MATLAB 允许写两个程序文件：
% 脚本 - 脚本文件 .m 扩展程序文件，
%       在这些文件中写的一系列命令，想一起执行
%      脚本不接受输入和不返回任何输出。他们在工作区中的数据操作。
% 函数 - 函数文件 .m 扩展程序文件,
%       函数可以接受输入和返回输出,
%      内部变量是本地的函数。


% MATLAB Simulink 仿真
% Simulink 是 MATLAB 最重要的组件之一，
% 它提供一个动态系统建模、仿真和综合分析的集成环境。
% 它可以将 MATLAB 算法模型，以及导出到 MATLAB 仿真结果作进一步分析。

% Simulink 支持：
% 0、系统级设计
% 1、模拟
% 2、自动代码生成
% 3、嵌入式系统的测试和验证
% 4、MathWorks 还提供了其他一些附加产品和第三方硬件和软件产品可用于 Simulink。

% Stateflow 允许开发状态机器和流程图。
% Simulink Coder 可以自动生成C源代码系统的实时实现。
% xPC Target 可基于x86 实时系统提供了一个环境模拟和测试 Simulink 和 Stateflow 模型的实时物理系统上。
% Embedded Coder 支持特定的嵌入式目标。
% HDL Coder 允许自动生成可综合的VHDL和Verilog
% SimEvents 提供了一个库的图形积木造型排队系统

% Simulink 是能够通过造型风格检查，要求可追溯性和模型覆盖分析模型系统的核查和验证。
% Simulink 设计验证，让您识别设计错误，并生成测试模型检查情况。
